package cn.cuilan.secondkill.config;

import cn.cuilan.secondkill.redis.JedisTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
@ComponentScan({"cn.cuilan.secondkill"})
public class Config {

    @Value("${spring.redis.host}")
    public String redisHost;

    @Value("${spring.redis.port}")
    public int redisPort;

    // jedis连接池
    @Bean
    public JedisPool jedisPool() {
        JedisPoolConfig config = new JedisPoolConfig();
        // 最大连接数
        config.setMaxTotal(200);
        // 最大空闲数
        config.setMaxIdle(20);
        // 最大建立链接等待时间
        config.setMaxWaitMillis(1000);
        return new JedisPool(config, redisHost, redisPort);
    }

    // jedis操作模板
    @Bean
    public JedisTemplate jedisTemplate(@Autowired JedisPool jedisPool) {
        return new JedisTemplate(jedisPool);
    }

}
